{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第1章 统计学习方法概论"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1．统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行分析与预测的一门学科。统计学习包括监督学习、非监督学习、半监督学习和强化学习。\n",
    "\n",
    "2．统计学习方法三要素——模型、策略、算法，对理解统计学习方法起到提纲挈领的作用。\n",
    "\n",
    "3．本书主要讨论监督学习，监督学习可以概括如下：从给定有限的训练数据出发， 假设数据是独立同分布的，而且假设模型属于某个假设空间，应用某一评价准则，从假设空间中选取一个最优的模型，使它对已给训练数据及未知测试数据在给定评价标准意义下有最准确的预测。\n",
    "\n",
    "4．统计学习中，进行模型选择或者说提高学习的泛化能力是一个重要问题。如果只考虑减少训练误差，就可能产生过拟合现象。模型选择的方法有正则化与交叉验证。学习方法泛化能力的分析是统计学习理论研究的重要课题。\n",
    "\n",
    "5．分类问题、标注问题和回归问题都是监督学习的重要问题。本书中介绍的统计学习方法包括感知机、$k$近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与最大熵模型、支持向量机、提升方法、EM算法、隐马尔可夫模型和条件随机场。这些方法是主要的分类、标注以及回归方法。它们又可以归类为生成方法与判别方法。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用最小二乘法拟和曲线\n",
    "\n",
    "高斯于1823年在误差$e_1,…,e_n$独立同分布的假定下,证明了最小二乘方法的一个最优性质: 在所有无偏的线性估计类中,最小二乘方法是其中方差最小的！\n",
    "对于数据$(x_i, y_i)   (i=1, 2, 3...,m)$\n",
    "\n",
    "拟合出函数$h(x)$\n",
    "\n",
    "有误差，即残差：$r_i=h(x_i)-y_i$\n",
    "\n",
    "此时$L2$范数(残差平方和)最小时，$h(x)$ 和 $y$ 相似度最高，更拟合"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "一般的$H(x)$为$n$次的多项式，$H(x)=w_0+w_1x+w_2x^2+...w_nx^n$\n",
    "\n",
    "$w(w_0,w_1,w_2,...,w_n)$为参数\n",
    "\n",
    "最小二乘法就是要找到一组 $w(w_0,w_1,w_2,...,w_n)$ ，使得$\\sum_{i=1}^n(h(x_i)-y_i)^2$ (残差平方和) 最小\n",
    "\n",
    "即，求 $min\\sum_{i=1}^n(h(x_i)-y_i)^2$\n",
    "\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "举例：我们用目标函数$y=sin2{\\pi}x$, 加上一个正态分布的噪音干扰，用多项式去拟合【例1.1 11页】"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import scipy as sp\n",
    "from scipy.optimize import leastsq\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* ps: numpy.poly1d([1,2,3])  生成  $1x^2+2x^1+3x^0$*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 目标函数\n",
    "def real_func(x):\n",
    "    return np.sin(2*np.pi*x)\n",
    "\n",
    "# 多项式\n",
    "def fit_func(p, x):\n",
    "    f = np.poly1d(p)\n",
    "    return f(x)\n",
    "\n",
    "# 残差\n",
    "def residuals_func(p, x, y):\n",
    "    ret = fit_func(p, x) - y\n",
    "    return ret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 十个点\n",
    "x = np.linspace(0, 1, 10)\n",
    "x_points = np.linspace(0, 1, 1000)\n",
    "# 加上正态分布噪音的目标函数的值\n",
    "y_ = real_func(x)\n",
    "y = [np.random.normal(0, 0.1) + y1 for y1 in y_]\n",
    "\n",
    "\n",
    "def fitting(M=0):\n",
    "    \"\"\"\n",
    "    M    为 多项式的次数\n",
    "    \"\"\"\n",
    "    # 随机初始化多项式参数\n",
    "    p_init = np.random.rand(M + 1)\n",
    "    # 最小二乘法\n",
    "    p_lsq = leastsq(residuals_func, p_init, args=(x, y))\n",
    "    print('Fitting Parameters:', p_lsq[0])\n",
    "\n",
    "    # 可视化\n",
    "    plt.plot(x_points, real_func(x_points), label='real')\n",
    "    plt.plot(x_points, fit_func(p_lsq[0], x_points), label='fitted curve')\n",
    "    plt.plot(x, y, 'bo', label='noise')\n",
    "    plt.legend()\n",
    "    return p_lsq"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [0.02515259]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x295a3c0fef0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=0\n",
    "p_lsq_0 = fitting(M=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [-1.50626624  0.77828571]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x295a5c54b70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=1\n",
    "p_lsq_1 = fitting(M=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=3 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [ 2.21147559e+01 -3.34560175e+01  1.13639167e+01 -2.82318048e-02]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x295a5d02e10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=3\n",
    "p_lsq_3 = fitting(M=3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### M=9"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting Parameters: [-1.70872086e+04  7.01364939e+04 -1.18382087e+05  1.06032494e+05\n",
      " -5.43222991e+04  1.60701108e+04 -2.65984526e+03  2.12318870e+02\n",
      " -7.15931412e-02  3.53804263e-02]\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x295a5c7b5f8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# M=9\n",
    "p_lsq_9 = fitting(M=9)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "当M=9时，多项式曲线通过了每个数据点，但是造成了过拟合"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 正则化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "结果显示过拟合， 引入正则化项(regularizer)，降低过拟合\n",
    "\n",
    "$Q(x)=\\sum_{i=1}^n(h(x_i)-y_i)^2+\\lambda||w||^2$。\n",
    "\n",
    "回归问题中，损失函数是平方损失，正则化可以是参数向量的L2范数,也可以是L1范数。\n",
    "\n",
    "- L1: regularization\\*abs(p)\n",
    "\n",
    "- L2: 0.5 \\* regularization \\* np.square(p)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "regularization = 0.0001\n",
    "\n",
    "\n",
    "def residuals_func_regularization(p, x, y):\n",
    "    ret = fit_func(p, x) - y\n",
    "    ret = np.append(ret,\n",
    "                    np.sqrt(0.5 * regularization * np.square(p)))  # L2范数作为正则化项\n",
    "    return ret"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 最小二乘法,加正则化项\n",
    "p_init = np.random.rand(9 + 1)\n",
    "p_lsq_regularization = leastsq(\n",
    "    residuals_func_regularization, p_init, args=(x, y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x295a5c757b8>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x295a5d5f5c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(x_points, real_func(x_points), label='real')\n",
    "plt.plot(x_points, fit_func(p_lsq_9[0], x_points), label='fitted curve')\n",
    "plt.plot(\n",
    "    x_points,\n",
    "    fit_func(p_lsq_regularization[0], x_points),\n",
    "    label='regularization')\n",
    "plt.plot(x, y, 'bo', label='noise')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 第1章统计学习方法概论-习题\n",
    "**撰写人：**胡锐锋-天国之影-Relph\n",
    "\n",
    "**github地址：**https://github.com/datawhalechina/statistical-learning-method-solutions-manual\n",
    "\n",
    "### 习题1.1\n",
    "&emsp;&emsp;说明伯努利模型的极大似然估计以及贝叶斯估计中的统计学习方法三要素。伯努利模型是定义在取值为0与1的随机变量上的概率分布。假设观测到伯努利模型$n$次独立的数据生成结果，其中$k$次的结果为1，这时可以用极大似然估计或贝叶斯估计来估计结果为1的概率。\n",
    "\n",
    "**解答：**"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "伯努利模型的极大似然估计以及贝叶斯估计中的**统计学习方法三要素**如下：  \n",
    "1. **极大似然估计**  \n",
    "**模型：** $\\mathcal{F}=\\{f|f_p(x)=p^x(1-p)^{(1-x)}\\}$  \n",
    "**策略：** 最大化似然函数  \n",
    "**算法：** $\\displaystyle \\mathop{\\arg\\min}_{p} L(p)= \\mathop{\\arg\\min}_{p} \\binom{n}{k}p^k(1-p)^{(n-k)}$\n",
    "2. **贝叶斯估计**  \n",
    "**模型：** $\\mathcal{F}=\\{f|f_p(x)=p^x(1-p)^{(1-x)}\\}$  \n",
    "**策略：** 求参数期望  \n",
    "**算法：**\n",
    "$$\\begin{aligned}  E_\\pi\\big[p \\big| y_1,\\cdots,y_n\\big]\n",
    "& = {\\int_0^1}p\\pi (p|y_1,\\cdots,y_n) dp \\\\\n",
    "& = {\\int_0^1} p\\frac{f_D(y_1,\\cdots,y_n|p)\\pi(p)}{\\int_{\\Omega}f_D(y_1,\\cdots,y_n|p)\\pi(p)dp}dp \\\\\n",
    "& = {\\int_0^1}\\frac{p^{k+1}(1-p)^{(n-k)}}{\\int_0^1 p^k(1-p)^{(n-k)}dp}dp\n",
    "\\end{aligned}$$\n",
    "\n",
    "**伯努利模型的极大似然估计：**  \n",
    "定义$P(Y=1)$概率为$p$，可得似然函数为：$$L(p)=f_D(y_1,y_2,\\cdots,y_n|\\theta)=\\binom{n}{k}p^k(1-p)^{(n-k)}$$方程两边同时对$p$求导，则：$$\\begin{aligned}\n",
    "0 & = \\binom{n}{k}[kp^{k-1}(1-p)^{(n-k)}-(n-k)p^k(1-p)^{(n-k-1)}]\\\\\n",
    "& = \\binom{n}{k}[p^{(k-1)}(1-p)^{(n-k-1)}(m-kp)]\n",
    "\\end{aligned}$$可解出$p$的值为$p=0,p=1,p=k/n$，显然$\\displaystyle P(Y=1)=p=\\frac{k}{n}$  \n",
    "\n",
    "**伯努利模型的贝叶斯估计：**  \n",
    "定义$P(Y=1)$概率为$p$，$p$在$[0,1]$之间的取值是等概率的，因此先验概率密度函数$\\pi(p) = 1$，可得似然函数为： $$L(p)=f_D(y_1,y_2,\\cdots,y_n|\\theta)=\\binom{n}{k}p^k(1-p)^{(n-k)}$$  \n",
    "根据似然函数和先验概率密度函数，可以求解$p$的条件概率密度函数：$$\\begin{aligned}\\pi(p|y_1,\\cdots,y_n)&=\\frac{f_D(y_1,\\cdots,y_n|p)\\pi(p)}{\\int_{\\Omega}f_D(y_1,\\cdots,y_n|p)\\pi(p)dp}\\\\\n",
    "&=\\frac{p^k(1-p)^{(n-k)}}{\\int_0^1p^k(1-p)^{(n-k)}dp}\\\\\n",
    "&=\\frac{p^k(1-p)^{(n-k)}}{B(k+1,n-k+1)}\n",
    "\\end{aligned}$$所以$p$的期望为：$$\\begin{aligned}\n",
    "E_\\pi[p|y_1,\\cdots,y_n]&={\\int}p\\pi(p|y_1,\\cdots,y_n)dp \\\\\n",
    "& = {\\int_0^1}\\frac{p^{(k+1)}(1-p)^{(n-k)}}{B(k+1,n-k+1)}dp \\\\\n",
    "& = \\frac{B(k+2,n-k+1)}{B(k+1,n-k+1)}\\\\\n",
    "& = \\frac{k+1}{n+2}\n",
    "\\end{aligned}$$\n",
    "$\\therefore \\displaystyle P(Y=1)=\\frac{k+1}{n+2}$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 习题1.2\n",
    "&emsp;&emsp;通过经验风险最小化推导极大似然估计。证明模型是条件概率分布，当损失函数是对数损失函数时，经验风险最小化等价于极大似然估计。\n",
    "\n",
    "**解答：**\n",
    "\n",
    "假设模型的条件概率分布是$P_{\\theta}(Y|X)$，现推导当损失函数是对数损失函数时，极大似然估计等价于经验风险最小化。\n",
    "极大似然估计的似然函数为：$$L(\\theta)=\\prod_D P_{\\theta}(Y|X)$$两边取对数：$$\\ln L(\\theta) = \\sum_D \\ln P_{\\theta}(Y|X) \\\\ \n",
    "\\mathop{\\arg \\max}_{\\theta} \\sum_D \\ln P_{\\theta}(Y|X) = \\mathop{\\arg \\min}_{\\theta} \\sum_D (- \\ln P_{\\theta}(Y|X))$$ \n",
    "反之，经验风险最小化等价于极大似然估计，亦可通过经验风险最小化推导极大似然估计。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "参考代码：https://github.com/wzyonggege/statistical-learning-method\n",
    "\n",
    "本文代码更新地址：https://github.com/fengdu78/lihang-code\n",
    "\n",
    "习题解答：https://github.com/datawhalechina/statistical-learning-method-solutions-manual\n",
    "\n",
    "中文注释制作：机器学习初学者公众号：ID:ai-start-com\n",
    "\n",
    "配置环境：python 3.5+\n",
    "\n",
    "代码全部测试通过。\n",
    "![gongzhong](../gongzhong.jpg)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
